
import urllib.request as urltools



'''
# urlopen
response = urltools.urlopen("http://www.baidu.com")
# 类 文件 对象支持，文件对象的操作方法，如 read() 方法 读取 文件全部内容，返回字符串
html = response.read()
# 打印字符串
print( html )
'''


'''
# 如果需要执行更复杂的操作，比如增加HTTP报头，必须创建一个 Request 实例来作为urlopen()的参数
request = urltools.Request("http://baidu.com")
response = urltools.urlopen( request )
html = response.read()
print( html )
'''



'''
# User-Agent 但是如果我们用一个合法的身份去请求别人网站，显然人家就是欢迎的，所以我们就应该给我们的这个代码加上一个身份，就是所谓的User-Agent头。
url = "http://baidu.com"
ua_header = { "User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;" }
request = urltools.Request(url,headers = ua_header )
response = urltools.urlopen( request )
html = response.read()
print( html )
'''


'''
# 在 HTTP Request 中加入特定的 Header，来构造一个完整的HTTP请求消息。
url = "http://baidu.com"
header = { "User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;" }
request = urltools.Request(url,headers = header )
#也可以通过调用Request.add_header() 添加/修改一个特定的header
request.add_header("Connection", "keep-alive")
request.add_header("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;")

# 也可以通过调用Request.get_header()来查看header信息
print( request.get_header(header_name="Connection") )
print( request.get_method() )

response = urltools.urlopen( request )
print( response.code )
html = response.read()
print( html )
'''




# 随机添加/修改User-Agent
import random

url = "http://baidu.com"

ua_list = [
    "Mozilla/5.0 (Windows NT 6.1; ) Apple.... ",
    "Mozilla/5.0 (X11; CrOS i686 2268.111.0)... ",
    "Mozilla/5.0 (Macintosh; U; PPC Mac OS X.... ",
    "Mozilla/5.0 (Macintosh; Intel Mac OS... "
]
user_agent = random.choice(ua_list)
print( user_agent )
request = urltools.Request(url)
#也可以通过调用Request.add_header() 添加/修改一个特定的header
request.add_header("User-Agent", user_agent)
# 第一个字母大写，后面的全部小写
request.get_header( header_name = "User-agent" )
response = urltools.urlopen(request)
html = response.read()
print(html)